home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib06.dsk / EXTRA SPACE.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  45 lines

  1. 10  REM  *************************
  2. 11  REM  *     EXTRA SPACE       *
  3. 12  REM  *     BY DEAN KAY       *
  4. 13  REM  *   APPLESOFT BASIC     *
  5. 14  REM  *   COPYRIGHT (C) 1981  *
  6. 15  REM  *   BY MICRO-SPARC INC  *
  7. 16  REM  *************************
  8. 30  TEXT : HOME 
  9. 40  VTAB 4: FOR X = 1 TO 40: PRINT "*";: NEXT 
  10. 50  HTAB 15: PRINT "EXTRA SPACE"
  11. 60  PRINT : HTAB 15: PRINT "BY DEAN KAY"
  12. 70  PRINT : PRINT "  PROGRAM TO SAVE SPACE INSIDE DOS FOR": PRINT "YOUR BINARY PROGRAMS. THIS SPACE IS NOT": PRINT "AFFECTED BY INT, FP, NEW, OR MAXFILES."
  13. 80  PRINT : PRINT "  THIS SPACE CAN BE RECOVERED BY ENTER-": PRINT "ING '0' FOR THE NUMBER OF SECTORS."
  14. 90  PRINT : PRINT "  ANSWER THE QUESTION AS TO HOW MANY": PRINT "SECTORS TO SAVE. A SECTOR IS 256 BYTES": PRINT "OR $100 (HEX)."
  15. 100  PRINT : PRINT "EXAMPLE: SAVE 1 SECTOR"
  16. 110  HTAB 10: PRINT "256 BYTES WILL BE SAVED"
  17. 120  HTAB 10: PRINT "STARTING AT $9C00"
  18. 130  HTAB 10: PRINT "ENDING AT $9CFF"
  19. 140  HTAB 10: PRINT "DOS WILL START AT $9500"
  20. 150  HTAB 10: PRINT "HIMEM WILL BE AT $9500"
  21. 160  PRINT : FLASH : INPUT "SAVE HOW MANY SECTORS?";SEC: NORMAL 
  22. 170 NUM = 156 -SEC
  23. 180  REM  POKE DOS ADDRESSES WITH NEW ADDRESS
  24. 190  POKE 40193,NUM: POKE 40192,211: CALL 42964
  25. 250  GOSUB 1100: VTAB 24: END 
  26. 1100  HOME 
  27. 1110  DEF  FN MOD(NBR) = (NBR/256 - INT(NBR/256)) *256: REM  DEFINE "MOD" FUNCTION
  28. 1120 NBR =  PEEK(115) + PEEK(116) *256
  29. 1130 MOD256 =  FN MOD(NBR)
  30. 1140  POKE 1,MOD256: POKE 0,NBR/256: REM  POKE DATA INTO $0 AND 1
  31. 1150  POKE 60,0: POKE 61,0: POKE 62,1: POKE 63,0: REM  POKE DATA ADDRESSES INTO X AND Y REGISTERS
  32. 1160  HOME : FOR X = 1 TO 40: PRINT "*";: NEXT : VTAB 3: PRINT "HIMEMORY IS NOW SET TO:": PRINT : PRINT "DEC ";NBR: PRINT : PRINT "    OR"
  33. 1170  CALL  -589
  34. 1180  REM  PRINT CONTENTS OF A1L,H THRU A2L,H IN MONITOR
  35. 1190  POKE 1064,200: POKE 1065,197: POKE 1066,216: POKE 1067,160: POKE 1068,160: POKE 1069,164
  36. 1200 EXT = 40192 -SEC *256: IF SEC = 0  OR EXT = 40192  THEN  PRINT : PRINT : FOR X = 1 TO 40: PRINT "*";: NEXT : VTAB 13: PRINT "NO EXTRA SPACE": VTAB 22: FOR X = 1 TO 40: PRINT "*";: NEXT : END 
  37. 1210  PRINT 
  38. 1220  PRINT : FOR X = 1 TO 40: PRINT "*";: NEXT : VTAB 13: PRINT "EXTRA SPACE IS ";SEC *256;" BYTES STARTING AT:"
  39. 1230  PRINT : PRINT "DEC ";EXT
  40. 1240  PRINT : PRINT "    OR"
  41. 1250 NBR = EXT:MOD256 =  FN MOD(NBR)
  42. 1260  POKE 1,MOD256: POKE 0,NBR/256
  43. 1270  POKE 60,0: POKE 61,0: POKE 62,1: POKE 63,0: CALL  -589
  44. 1280  POKE 1360,200: POKE 1361,197: POKE 1362,216: POKE 1363,160: POKE 1364,164: POKE 1365,160
  45. 1290  PRINT : VTAB 21: FOR X = 1 TO 40: PRINT "*";: NEXT : END